package com.ae.shield.common.recipe.assembly;

import com.ae.shield.ModLib;
import net.minecraft.fluid.Fluid;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.IRecipeType;
import net.minecraft.tags.ITag;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.Registry;
import net.minecraftforge.fluids.FluidStack;

import javax.annotation.Nullable;

public interface IAssemblyRecipe extends IRecipe<IInventory> {
    ResourceLocation TYPE_ID = new ResourceLocation(ModLib.MOD_ID, "assembly");

    @Override
    default IRecipeType<?> getType() {
        return Registry.RECIPE_TYPE.getOptional(TYPE_ID).get();
    }

    @Override
    default boolean canFit(int width, int height) {
        return false;
    }

    @Override
    default boolean isDynamic() {
        return true;
    }

    int getEnergy();
    int getTick();
    @Nullable
    ITag<Fluid> getFluidTag();
    @Nullable
    Fluid getFluid();
    int getFluidCount();
    boolean matches(FluidStack fluid, NonNullList<ItemStack> stacks);
}
